{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.2 Why Python for Data Analysis?（为什么使用Python做数据分析）\n",
    "\n",
    "\n",
    "> 这节我就不进行过多介绍了，Python近几年的发展势头是有目共睹的，尤其是在科学计算，数据处理，AI方面，否则大家也不会来看这本书了。\n",
    "\n",
    "## 使用Python的一些优点\n",
    "\n",
    "1. Python是一门胶水语言，可以把不同语言整合起来，比如上层代码使用Python编写，底层代码用C，C++等语言实现。\n",
    "2. 解决了两种语言的问题。以前做研究用一门语言写原型（比如R，SAS），效果好了才会用其他语言去重新实现一遍（比如Java，C#，C++），部署到实际任务中。而Python的优势在于既适合做研究，又适合直接部署\n",
    "\n",
    "## 什么情况下不使用Python\n",
    "\n",
    "因为Python是解释性程序设计语言（interpreted programming languagePython），其运行速度比Java或C++慢。如果觉得慢一点没关系，可以用Python，但如果现实场景中需要系统低延迟，使用效率高，还是使用C++这样的语言比较好。\n",
    "\n",
    "用Python编写多线程应用（multithreaded applications）并不方便，因为Python有一个叫做全局解释器锁（global interpreter lock (GIL)）的机制，这个机制让编译器只能在一次运行一个Python指令。对于一些大数据量的处理，Python的并不合适了。\n",
    "\n",
    "但并不是说Python不能运行多线程，并行代码。Python C扩展能使用本地多线程（通过C或C++）来并行运行代码，而不通过GIL机制，前提是不和Python object（对象）进行过多交互。\n"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [py35]",
   "language": "python",
   "name": "Python [py35]"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
